<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <script>
    var str = "abc";
    var s2 = new String("abc"); //函数前添加new，会返回object 类型,表示生成一个对象
   
    //对象：复合数据类型，保存复合信息
        //对象之间的比较运算是比较其内存地址
    //字符串值会存放在内存的字符串池，同一字符串值只存放一次。 
    var s5 = s2;
    /*
    charAt
    charCodeAt
    */
    var str2 = String.fromCharCode(100);
    /*
        str.indexOf("char")
        lastIndexOf()
    */
   /*
        str.replace(value,"")
        默认情况下只替换一次
   */
    /*
        字符串截取,返回区间内的字符，前闭后开，不破坏原字符串
        substring(start,end);
    */
        /*
        字符串分割 
        split('sign')
        */
    /*
        字符串的遍历
    */
    var str = "2901-192-39";
    for (let i = 0; i < str.length; i++) {
        console.log(str[i]);
    }
    /*
        js字符串基于java，是不可变的 ，final
        字符串池: 一个字符串值会在字符串池中创建
        对于同一个字符串值，在池中只存一遍
    */
    var str = "abc";
    var str1 = "abc";
    var str2 = "abc";
    /*
        对象属性的保存
        对象在内存里用数组存放
        Hash
        任意长度的二进制值转为固定长度
        任意长度输入转为固定长度输出 
        
        加密 MD5 一对一
        对比 Hash值对比，用于云盘存储
        散列 
        负载均衡 ：服务器访问量巨大，
                 多个用户向服务器发送同一请求，
                 找到当前哪台服务器不繁忙，并提供访问
        map.put(key,value);
        将key通过hash算法找到数组中的位置
        map.get(key)
        
    
    */


    </script>
</body>
</html>